목차
학습 목표
- 딕셔너리의 개념과 특징을 이해한다.
- 딕셔너리를 생성하고 키를 이용해 값에 접근할 수 있다.
- 딕셔너리 항목을 추가, 수정, 삭제할 수 있다.
- 딕셔너리를 이용한 프로그램을 작성할 수 있다.
7.1 딕셔너리의 개요
딕셔너리(dictionary)는 키(key)와 값(value)의 쌍으로 데이터를 저장하는 자료형이다.
본 예제는 딕셔너리를 생성하고 키-값 쌍을 추가하거나 조회하는 기본 사용법을 보여 준다. 딕셔너리는 순서보다 ‘키를 통한 빠른 조회’에 강점이 있으므로, 항목 이름을 키로 삼는 상황에 적합하다.
prices = {"아메리카노": 2500, "라떼": 3000}
print(prices["라떼"])
딕셔너리 생성과 특징
- 중괄호 { } 사용
- 키는 중복될 수 없음
- 값은 자유롭게 변경 가능
본 예제는 딕셔너리를 생성하고 키-값 쌍을 추가하거나 조회하는 기본 사용법을 보여 준다. 딕셔너리는 순서보다 ‘키를 통한 빠른 조회’에 강점이 있으므로, 항목 이름을 키로 삼는 상황에 적합하다.
prices = {}
prices["아메리카노"] = 2500
prices["라떼"] = 3000
7.2 딕셔너리 다루기
딕셔너리 순회
본 예제는 딕셔너리에서 키로 값을 조회하는 방법을 제시한다. 키 존재 여부를 in 연산자로 확인한 뒤 접근하면, 존재하지 않는 키로 인한 오류를 예방할 수 있다.
for key in prices:
print(key, prices[key])
items, keys, values
본 예제는 해당 단원에서 다루는 핵심 개념을 코드로 확인하기 위한 예시이다. 변수의 의미를 파악한 뒤, 입력·처리·출력의 흐름을 따라 실행 결과를 해석하는 것이 중요하다.
for k, v in prices.items():
print(k, v)
항목 삭제
본 예제는 해당 단원에서 다루는 핵심 개념을 코드로 확인하기 위한 예시이다. 변수의 의미를 파악한 뒤, 입력·처리·출력의 흐름을 따라 실행 결과를 해석하는 것이 중요하다.
prices.pop("라떼")
del prices["아메리카노"]
prices.clear()
LAB: 국가 수도 사전
본 예제는 딕셔너리에서 키로 값을 조회하는 방법을 제시한다. 키 존재 여부를 in 연산자로 확인한 뒤 접근하면, 존재하지 않는 키로 인한 오류를 예방할 수 있다.
capitals = {"한국": "서울", "일본": "도쿄"}
nation = input("국가 입력: ")
if nation in capitals:
print(capitals[nation])
LAB: 주문 금액 계산기
본 예제는 while 문으로 조건 기반 반복을 수행하며, 특정 조건을 만족할 때 break 문으로 반복을 즉시 종료하는 흐름을 보여 준다. 입력값이나 상태 변수를 점검하여 반복을 계속할지 여부를 결정한다.
menu = {"아메리카노": 2500, "라떼": 3000}
total = 0
while True:
drink = input("음료(종료): ")
if drink == "종료":
break
qty = int(input("수량: "))
total += menu[drink] * qty
print("총 금액:", total)
7.3 [플러스 예제] 프로그래밍 언어 선호도 조사
본 예제는 while 문으로 조건 기반 반복을 수행하며, 특정 조건을 만족할 때 break 문으로 반복을 즉시 종료하는 흐름을 보여 준다. 입력값이나 상태 변수를 점검하여 반복을 계속할지 여부를 결정한다.
langs = {"python": 0, "java": 0, "c": 0}
while True:
s = input("언어 입력(종료): ").lower()
if s == "종료":
break
if s in langs:
langs[s] += 1
7.4 [플러스 예제] 영어 단어 퀴즈
본 예제는 딕셔너리의 항목을 (키, 값) 쌍으로 순회하기 위해 items()를 사용한다. 각 반복에서 키와 값을 동시에 받아 처리함으로써, 저장된 데이터를 효율적으로 확인할 수 있다.
words = {"고양이": "cat", "강아지": "dog"}
for kor, eng in words.items():
ans = input(f"{kor}의 영어는? ")
if ans == eng:
print("정답")
else:
print("오답")